1
數學映射與資料模型
MATH002Lesson 3
00:00
數學映射與資料模型是抽象集合論與計算現實之間的橋樑。在這一框架中,一個 演算法 可視為一種正式且確定性的轉換,將結構化輸入透過精確的指令處理,產生正確的輸出。這為所有軟體與資料庫架構奠定了邏輯基礎。

演算法的特性

演算法是一種解決問題的逐步方法,具有七個關鍵特徵:

  • 輸入: 演算法從指定的資料集合中接收資料。
  • 輸出: 演算法從指定的資料集合中產生結果(解答)。
  • 精確性: 每一步都以絕對清晰的方式陳述。
  • 確定性: 中間結果是唯一的,僅由輸入和先前步驟決定。
  • 有限性: 該過程在有限步數後終止。
  • 正確性: 輸出能如預期般解決問題。
  • 通用性: 該程序適用於一整類輸入,而不僅僅是單一案例。

演算法 4.1.1:尋找三個數字的最大值

這個簡單的三元關係展示了精確性與確定性。無論 $a, b,$ 和 $c$ 的值如何,這些步驟都遵循嚴謹的邏輯路徑。

偽程式碼追蹤
max3(a, b, c) {
large = a
if (b > large) large = b
if (c > large) large = c
return large
}

資料模型與迴圈不變式

在更複雜的資料結構中,例如序列 ($s_1, ..., s_n$),我們會使用 演算法 4.1.2。為了確保此類演算法正確,我們依賴於數學歸納法與「 迴圈不變式」的概念。

演算法 4.1.2:在序列中尋找最大值
max(s, n) {
large = s_1
for i = 2 to n
if (s_i > large)
large = s_i
return large
}

迴圈不變式: 「large 是子序列 $s_1, ..., s_i$ 中最大的值」。此性質在每次迭代中皆成立,藉由數學歸納法證明其正確性。

🎯 核心原則:映射有效性
一個有效的數學函數要求定義域中的每個元素都必須映射到 恰好一個 對應到值域中的元素。若缺少箭頭或從同一來源出現多條箭頭,則會使該關係失去函數資格,這正反映了非確定性或不完整的演算法在實際應用中失敗的原因。